1. Field of the Invention
The present invention relates to hybrid cloud cluster deployment and more particularly to domain name resolution in a hybrid cloud cluster.
2. Description of the Related Art
Network computing, at its core, relates to the transport of data between addressable computing endpoints in a network of computing endpoints. Integral to network computing is the universal way in which data is addressed so as to be delivered to an intended end point. In this regard, the Internet protocol (IP) is the principal communications protocol used for relaying packets of data across an internetwork using the IP suite. Responsible for routing packets across network boundaries, IP is the primary protocol that establishes the Internet. The domain name system, however, remains the enabler of global computing by bridging the complexity of the IP address with a human factors friendly domain name.
The domain name system (DNS) is a hierarchical naming system built on a distributed database for computers, services, or any resource connected to the Internet or a private network. The domain name system associates various information with domain names assigned to each of the participating entities. Most importantly, the domain name system translates domain names meaningful to humans into the numerical identifiers associated with networking equipment for the purpose of locating and addressing these devices worldwide. The backbone of the domain name system is the DNS server. Each domain in the DNS enjoys at least one authoritative DNS name server that publishes information about that domain and the name servers of any domains subordinate to the domain. The top of the hierarchy is served by the root name servers—specifically, the servers to query when resolving a top-level domain name (TLD).
While the architecture and operation of the DNS has become a generally understood principal of computing in respect to the Internet, managing the DNS in a hybrid cloud computing environment is not without its challenges. In this regard, cloud computing refers to Internet-based computing in which shared resources, software, and information are provided to computers and other devices on demand, analogous to the delivery of power in the municipal electricity grid. Generally, the typical cloud computing infrastructure consists of services delivered through common centers and built on host servers. Clouds often appear as single points of access for the computing needs of the consumer. Further, commercial cloud computing offerings generally are expected to meet quality of service (QoS) requirements of customers, and typically include service level agreements (SLAs).
A hybrid cloud computing environment is one that consists of both public cloud machine instances (the “public cloud”) and private cloud machine instances such as physical or virtual machines within the firewall, otherwise known as the Intranet or the private enterprise. A machine image can be securely dispensed into the public cloud and with the establishment of a secure tunnel, can be made to look as if the machine image is part of the private enterprise. It is also possible to deploy a set of machines according to some pattern, for instance a cluster can be deployed into specific public clouds. When this cluster is dispensed into the public cloud, it remains necessary for the set of machines in the public cloud to communicate with one another as well as with machines disposed within the Intranet. Thus, the machines in the public cloud must be able to resolve domain names in both the public cloud and the private enterprise.
The public cloud typically assigns machines both public and private hostnames that are resolvable to external and internal IP addresses, respectively. The internal addresses ensure internal-only resolution of addresses. Also, the private enterprise name is typically not resolvable in the Internet, but only within the Intranet. Thus, no one DNS name server can resolve both the internal names of the public cloud and also the internal names of the private enterprise. There are several ways that this difficulty has been addressed.
First, only private enterprise names have been used, but two drawbacks result: (1) all connections within the cluster now must traverse the Internet, through at least two secure pipes, and an exceptional performance penalty results large enough to likely be completely unacceptable; and (2) some services and/or ports in the public cloud instance may be configured to only accept connections from inside the public cloud, or only from outside the private enterprise. Second, the DNS name server of the public cloud has been manually configured in the cluster to be deployed. This DNS name server must parse out resolution queries for public cloud addresses to the public cloud DNS name server, and private enterprise addresses to the private enterprise DNS name server. This course of action introduces possible errors and also performance penalties.